const systemInfo = tt.getSystemInfoSync(); // 初始化系统信息
const canvas = tt.createCanvas(); //创建一个画布
const ctx = canvas.getContext('2d'); //创建一个基于画布的绘图上下文。
import Home from './common/home.js'; // 导入首页
import Goid from './common/gold.js'; // 导入金币
import Set from './common/set.js'; // 导入设置
import SidebarPopup from './common/sidebar.js'; // 导入侧边栏入口

import DataBus from '../libs/data.js'; // 导入参数
import ClickIndex from './click/index.js'; // 导入点击事件
import Music from '../libs/music.js'; // 导入按钮类


GameGlobal.databus = new DataBus(); // 全局数据管理，用于管理游戏状态和数据
GameGlobal.musicManager = new Music(); // 全局音乐管理实例

/**
 * 游戏主函数
 */
export default class Main {
	// 游戏界面元素 
	constructor() {
		this.ComSet = new Set(); // 组件
		this.ComSidebar = new SidebarPopup(); // 组件

		tt.onShow((res)=>{
			console.log("首次启动",res)
			if(res&&res.launch_from&&res.launch_from=='homepage'){
				GameGlobal.databus.silingqu=1
				this.ComSidebar.isVisible=true
				this.render()
			}
		})

		this.indexClick = new ClickIndex()
		GameGlobal.databus.indexClick = this.indexClick; // 全局数据管理，用于管理游戏状态和数据
		// 初始配置
		canvas.width = systemInfo.windowWidth;
		canvas.height = systemInfo.windowHeight;
		GameGlobal.databus.homethis = this;
		GameGlobal.databus.ctx = ctx;
		GameGlobal.databus.canvas = canvas;
		// // 加载资源
		this.loadResources().then(() => {
			this.render()
			// 激励广告
			GameGlobal.databus.videoAd = tt.createRewardedVideoAd({
				adUnitId: "rpflt0tkrn204l9fp1",
				multiton: true,
				multitonRewardMsg: ['更多奖励1', '更多奖励2', '更多奖励3'],
				multitonRewardTimes: 3,
				progressTip: false,
			});
		});

		// tt.onTouchStart(res => {
		// 	if (GameGlobal.databus.gameState === 'home') {
		// 		this.indexClick.handleTouch(res)
		// 	}
		// 	//  else if (GameGlobal.databus.gameState === 'game1') {
		// 	// 	clickgame1.handleTouch(res)
		// 	// }
		// });
		// // 音乐自动播放
		// GameGlobal.musicManager.playbgMusic();
	}
	// 卸载绘图
	notrender() {
		console.log("卸载绘图")
		tt.offTouchStart(this.indexClick.handleTouch);
	}
	// 绘制首页界面
	render() {
		console.log("加载分包1")
		
		GameGlobal.databus.gameState = 'home'
		tt.onTouchStart(this.indexClick.handleTouch);
		this.ComSidebar.render(GameGlobal.databus.ctx )
		Home.render(GameGlobal.databus.ctx )
		Goid.render(GameGlobal.databus.ctx )
		// this.ComSet.render(ctx)
		// tt.loadSubpackage({
		// 	name: 'stage1', // 填写 game.json 中 subPackages 填写的分包名称 name
		// 	success: function() {
		// 		console.log("加载分包")
		// 	},
		// 	fail: function() {
		// 		console.log("加载失败", ctx)
		// 	}
		// });
	}


	// 加载资源
	loadResources() {
		return new Promise((resolve) => {
			Object.keys(GameGlobal.databus.image).forEach(element => {
				GameGlobal.databus.image[element].value = tt.createImage();
				GameGlobal.databus.image[element].value.onload = () => checkLoaded();
				GameGlobal.databus.image[element].value.src = GameGlobal.databus.image[element].url;
			});
			let loadedCount = 0;
			const total = Object.keys(GameGlobal.databus.image).length;

			function checkLoaded() {
				if (++loadedCount === total) resolve();
			}
		});
	}
}